home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / boss_c.arc / BOSS.DOC next >
Text File  |  1987-06-04  |  75KB  |  2,971 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.                                  The Window BOSS
  23.                                by Phil Mongelluzzo
  24.  
  25.                                Revision:  06.04.87
  26.  
  27.  
  28.  
  29.  
  30.                             Star Guidance Consulting
  31.                                  273 Windy Drive
  32.                           Waterbury, Connecticut 06705
  33.  
  34.                                   (203) 574-2449
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.           Copyright (c) 1984, 1985, 1986, 1987 by Philip A. Mongelluzzo
  44.                                All Rights Reserved.
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.         The Window BOSS Shareware diskette,  containing a copy of this 
  52.         manual  may  be freely copied and shared,  but printed copies  of 
  53.         this document may not be copied in any way without permission  in 
  54.         writing from Star Guidance Consulting.  Thank you.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.                                                       The Window BOSS
  68.  
  69.  
  70.  
  71.         1. Introduction
  72.  
  73.         The Window BOSS is one of the most powerful and cost-effective 
  74.         products available to enhance and accelerate the development of 
  75.         system and applications programs in the "C" language.  The BOSS 
  76.         will let you create programs that have the same look and feel as 
  77.         top sellers like Lotus 1-2-3, Sidekick, dBASE III, and Framework!  
  78.         Pop-up windows, pull down menus, status lines, and in context on-
  79.         line help functions can be easily implemented.  Your applications 
  80.         can drag windows around the screen and automatically sense the 
  81.         video card installed.  All of this without snow, flicker, or 
  82.         delay! 
  83.  
  84.         Registered users can take advantage of our "Source Plus" policy 
  85.         that provides meticulously commented source code and one year of 
  86.         free updates.
  87.  
  88.         2. Technical Nitty Gritties
  89.  
  90.         The Window BOSS supports PC/MSDOS for the IBM PC/XT/AT and 
  91.         compatibles.   However, you'll need one of the following 
  92.         compilers in order to take advantage of the state-of-the-art 
  93.         techniques available from the BOSS:
  94.  
  95.                              Lattice C, Microsoft C, 
  96.                                 Borland Turbo C,
  97.                       Computer Innovations CI86, Datalight     
  98.  
  99.         The BOSS is written in "C" and assembly language.  You'll need 
  100.         the Microsoft Assembler, MASM, to assemble any local changes to 
  101.         the assembler source.
  102.  
  103.           Stats:
  104.  
  105.              Maximum windows:    limited only by compiler and memory
  106.              Maximum window:     full screen
  107.              Minimum window:     1 row 1 column (borderless)
  108.                                  3 rows 3 columns (framed)
  109.  
  110.           Operation:
  111.  
  112.              Simply include the library at link time and invoke the 
  113.              function desired.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.                                                            Page: 1
  128.  
  129.  
  130.  
  131.  
  132.  
  133.         The Window BOSS
  134.  
  135.  
  136.  
  137.         3. User Supported Software
  138.  
  139.         Star Guidance Consulting distributes The Window BOSS with a 
  140.         unique marketing approach called Shareware.  The Shareware 
  141.         diskette with the programs and manual may be freely copied and 
  142.         shared.  It is also available from Star Guidance for $15.00 to 
  143.         cover the diskette, postage and handling.  We ask you to help us 
  144.         distribute The Window BOSS by sharing unmodified copies of the 
  145.         Shareware diskette with others.  We also encourage you to 
  146.         register your copy for $50.00.  You'll find a registration form 
  147.         at the end of this manual.  Thank you for your support and enjoy 
  148.         the BOSS.  
  149.  
  150.         3.1. Registering
  151.  
  152.         Shareware is a term for software that can be freely copied and 
  153.         shared.  The term describes copyrighted software which the author 
  154.         supports and encourages people to copy and share.
  155.  
  156.         Shareware is like public television:  the programming is freely 
  157.         distributed, but support from users is encouraged.  The concept 
  158.         is based on these principles:
  159.  
  160.           1. People need to try programs to see if they are useful.
  161.           2. Software authors can be supported directly by users.
  162.           3. Copying and networking of programs can be encouraged.
  163.  
  164.         We encourage you to register your copy of The Window BOSS for 
  165.         $50.00.  Registration has a number of benefits to you:
  166.  
  167.           1. Serialized diskette containing all source code for all 
  168.              supported compilers.
  169.           2. Telephone Support (you pay phone charges) and free updates 
  170.              for 1 year.
  171.           3. Thanks from us for your support and encouragement!
  172.  
  173.         You will find a registration form at the end of this document.
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.         Page: 2
  194.  
  195.  
  196.  
  197.  
  198.  
  199.                                                       The Window BOSS
  200.  
  201.  
  202.  
  203.         3.2. The SHAREWARE Distribution Diskette
  204.  
  205.           The SHAREWARE diskette should contain the following files:
  206.  
  207.              ARCE.DOC            <- Archive utility document
  208.              ARCE.EXE            <- Archive utility
  209.              BOSS.ARC            <- The Window BOSS distribution archive.
  210.              BOSS.DOC            <- You are reading it
  211.              BOSS.TOC            <- Table of contents for manual
  212.  
  213.              Contents of BOSS.ARC:
  214.  
  215.                BOSSDEMO.C        <- Source to BOSSSDEMO
  216.                BOSSDEMO.EXE      <- DEMO Program
  217.                C86.BAT           <- Compiler Driver - CI86 
  218.                DLC.BAT           <- Compiler Driver - Datalight 
  219.                MSC3.BAT          <- Compiler Driver - Microsoft 3 
  220.                MSC4.BAT          <- Compiler Driver - Microsoft 4 
  221.                LCS2              <- Compiler Driver - Lattice 2.XX 
  222.                LCS3              <- Compiler Driver - Lattice 3.XX 
  223.                TCS               <- Compiler Driver - Turbo C (TCC)
  224.                GENINDEX.C        <- Source to GENINDEX (CI86)
  225.                HELLO.C           <- The classic....
  226.                HELP.C            <- Help system source
  227.                INTELC.HLP        <- Demo DATA file
  228.                INTELC.NDX        <- Index to Demo DATA file
  229.                LOADC86.BAT       <- Link Batch file - CI86
  230.                LOADDLC.BAT       <- Link Batch file - Datalight
  231.                LOADLC2.BAT       <- Link Batch file - Lattice 2.XX
  232.                LOADLC3.BAT       <- Link Batch file - Lattice 3.XX
  233.                LOADMS3.BAT       <- Link Batch file - Microsoft 3
  234.                LOADMS4.BAT       <- Link Batch file - Microsoft 4
  235.                LOADTC.BAT        <- Tlink Batch file - Turbo C
  236.                PEEK.C            <- Peek for Microsoft (Turbo C)
  237.                POPUP.C           <- Popup menu source  
  238.                SC86.LIB          <- Small memory library - CI86
  239.                SDLC.LIB          <- Small memory library - Datalight 
  240.                SLAT2.LIB         <- Small memory library - Lattice 2.XX 
  241.                SLAT3.LIB         <- Small memory library - Lattice 3.XX 
  242.                SMSC3.LIB         <- Small memory library - Microsoft 3.0
  243.                SMSC4.LIB         <- Small memory library - Microsoft 4.0
  244.                STC.LIB           <- Small memory library - Turbo C 1.X
  245.                WINDOWS.FNS       <- Type Checking INCLUDE file - Microsoft
  246.                WINDOWS.H         <- BOSS INCLUDE file 
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.                                                            Page: 3
  260.  
  261.  
  262.  
  263.  
  264.  
  265.         The Window BOSS
  266.  
  267.  
  268.  
  269.         3.3. The SOURCE Distribution Diskette
  270.  
  271.           The SOURCE diskette(s) should contain the following files:
  272.  
  273.              ARCE.DOC            <- Documentation for ARC.EXE
  274.              ARCE.EXE            <- Archive utility
  275.              ASMFILES.ARC        <- Source to all assembler modules
  276.              C86.ARC             <- Computer Innovations specific files
  277.              CFILES.ARC          <- Source to all "C" modules
  278.              DLC.ARC             <- Datalight specific files
  279.              DOC.ARC             <- Latest documentation
  280.              FILES.LST           <- List of the ARChive file contents
  281.              HELLO.C             <- The classic
  282.              LC2.ARC             <- Lattice Ver 2.XX specific files
  283.              LC3.ARC             <- Lattice Ver 3.XX specific files
  284.              MS3.ARC             <- Microsoft Ver 3.00 specific files
  285.              MS4.ARC             <- Microsoft Ver 4.00 specific files
  286.              TC1.ARC             <- Borland Turbo C 1.XX specific files
  287.              READ.ME             <- READ THIS - Last minute notes
  288.              REV.LEV             <- Revision level
  289.  
  290.              Contents of ASMFILES.ARC (ASM Source Files)
  291.  
  292.                DLVLIB.ASM        <- ASM routines for Datalight
  293.                MSVLIB.ASM        <- ASM routines for Microsoft & Borland
  294.                VLIB.ASM          <- ASM routines for Lattice & CI86
  295.  
  296.              Contents of C86.ARC (Computer Innovations Specific Files)
  297.  
  298.                ASMALL.BAT        <- Small model assembler driver
  299.                ALARGE.BAT        <- Large model assembler driver
  300.                CC.BAT            <- Small model compiler driver 
  301.                CCBIG.BAT         <- Large model compiler driver 
  302.                EPILOGUE.H        <- ASM include file
  303.                LCOMPILE.BAT      <- Large model - compile *.c
  304.                LOADC86.BAT       <- Link driver for BOSSDEMO
  305.                LWIN.LIB          <- Large model library
  306.                MAKELIB.BAT       <- Builds LIB file from OBJ(s)
  307.                MODEL.H           <- ASM include file
  308.                PROLOGUE.H        <- ASM include file
  309.                SCOMPILE.BAT      <- Small model - compile *.c
  310.                SWIN.LIB          <- Small model library
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.         Page: 4
  326.  
  327.  
  328.  
  329.  
  330.  
  331.                                                       The Window BOSS
  332.  
  333.  
  334.  
  335.         The SOURCE Distribution Diskette - continued.
  336.              
  337.  
  338.  
  339.              Contents of CFILES.ARC (C Source Files)
  340.  
  341.                BOSSDEMO.C        <- BOSSDEMO Source
  342.                GENINDEX.C        <- GENINDEX Source
  343.                HELP.C            <- Help function source
  344.                PEEK.C            <- PEEK for MSC (Turbo C)
  345.                POPUP.C           <- Popup menu source
  346.                SCANCODE.C        <- Quickie to display KB scancodes
  347.                WINDOWS.FNS       <- Function protype header file
  348.                WINDOWS.C         \ 
  349.                WINDOWS.H          \
  350.                WN_ACTIV.C          \
  351.                WN_BOXSE.C           \
  352.                WN_CLOSE.C            \
  353.                WN_CLR.C               \  
  354.                WN_COLOR.C              \ 
  355.                WN_DBORD.C               \
  356.                WN_DELRO.C                \
  357.                WN_DMA.C                   \
  358.                WN_SCROL.C                  |
  359.                WN_FIXCS.C                  |  The Window BOSS C
  360.                WN_GETS.C                   |  level source code and
  361.                WN_INSRO.C                  |  include file.
  362.                WN_LOCAT.C                  |
  363.                WN_MOVE.C                   |
  364.                WN_NATRI.C                  |
  365.                WN_OPEN.C                  /
  366.                WN_PRINT.C                /
  367.                WN_PUTS.C                /
  368.                WN_RESTO.C              /
  369.                WN_SAVE.C              /    
  370.                WN_SUP.C              /
  371.                WN_SYNC.C            /
  372.                WN_TITLE.C          /
  373.                WN_WRAP.C          /
  374.                WPRINTF.C         /
  375.  
  376.              Contents of DOC.ARC (Documentation)
  377.  
  378.                WINDOWS.MAN       <- Reference Manual (This Document)
  379.                WINDOWS.TOC       <- Table of Contents for manual
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.                                                            Page: 5
  392.  
  393.  
  394.  
  395.  
  396.  
  397.         The Window BOSS
  398.  
  399.  
  400.  
  401.         The SOURCE Distribution Diskette - continued.
  402.              
  403.  
  404.  
  405.              Contents of LC2.ARC (Lattice & Microsoft Ver 2.XX Specific)
  406.  
  407.                ASMALL.BAT        <- Small model assembler driver
  408.                ALARGE.BAT        <- Large model assembler driver
  409.                LCOMPILE.BAT      <- Large model - compile *.c
  410.                LCS.BAT           <- Small model compiler driver
  411.                LCL.BAT           <- Large model compiler driver
  412.                LOADLC.BAT        <- Link driver for BOSSDEMO
  413.                LWIN.LIB          <- Large model library
  414.                MAKELIB.BAT       <- Build LIB file from OBJ(s)
  415.                MAKELIB.CMD       <- Data file for MAKELIB.BAT
  416.                SCOMPILE.BAT      <- Small model - compile *.c
  417.                SWIN.LIB          <- Small model library
  418.  
  419.              Contents of LC3.ARC (Lattice Ver 3.XX Specific Files)
  420.  
  421.                ASMALL.BAT        <- Small model assembler driver
  422.                ALARGE.BAT        <- Large model assembler driver
  423.                LCOMPILE.BAT      <- Large model - compile *.c
  424.                LCS.BAT           <- Small model compiler driver
  425.                LCL.BAT           <- Large model compiler driver
  426.                LOADLC.BAT        <- Link driver for BOSSDEMO
  427.                LWIN.LIB          <- Large model library
  428.                MAKELIB.BAT       <- Build LIB file from OBJ(s)
  429.                MAKELIB.CMD       <- Data file for MAKELIB.BAT
  430.                SCOMPILE.BAT      <- Small model - compile *.c
  431.                SWIN.LIB          <- Small model library
  432.  
  433.              Contents of MS3.ARC (Microsoft Ver 3.00 Specific Files)
  434.  
  435.                ASMALL.BAT        <- Small model assembler driver
  436.                ALARGE.BAT        <- Large model assembler driver
  437.                LCOMPILE.BAT      <- Large model - compile *.c
  438.                LOADMS.BAT        <- Link driver for BOSSDEMO
  439.                LWIN.LIB          <- Large model library
  440.                MAKELIB.BAT       <- Build LIB file from OBJ(s)
  441.                MAKELIB.CMD       <- Data file for MAKELIB.BAT
  442.                MCCL.BAT          <- Large model compiler driver
  443.                MCCS.BAT          <- Small model compiler driver
  444.                SCOMPILE.BAT      <- Small model - compile *.c
  445.                SWIN.LIB          <- Small model library
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.         Page: 6
  458.  
  459.  
  460.  
  461.  
  462.  
  463.                                                       The Window BOSS
  464.  
  465.  
  466.  
  467.         The SOURCE Distribution Diskette - continued.
  468.              
  469.  
  470.  
  471.              Contents of MS4.ARC (Microsoft Ver 4.00 Specific Files)
  472.  
  473.                ASMALL.BAT        <- Small model assembler driver
  474.                ALARGE.BAT        <- Large model assembler driver
  475.                LCOMPILE.BAT      <- Large model - compile *.c
  476.                LOADMS.BAT        <- Link driver for BOSSDEMO
  477.                LWIN.LIB          <- Large model library
  478.                MAKELIB.BAT       <- Build LIB from OBJ(s)
  479.                MAKELIB.CMD       <- Data file for MAKELIB.BAT
  480.                MCCL.BAT          <- Large model compiler driver
  481.                MCCS.BAT          <- Small model compiler driver
  482.                SCOMPILE.BAT      <- Small model - compile *.c
  483.                SWIN.LIB          <- Small model library
  484.  
  485.              Contents of DLC.ARC (Datalight Specific)
  486.  
  487.                ASMALL.BAT        <- Small model assembler driver
  488.                ALARGE.BAT        <- Large model assembler driver
  489.                CCS.BAT           <- Small model compiler driver
  490.                CCL.BAT           <- Large model compiler driver
  491.                LCOMPILE.BAT      <- Large model - compile *.c
  492.                LOADDLC.BAT       <- Link driver for BOSSDEMO
  493.                LWIN.LIB          <- Large model library
  494.                MAKELIB.BAT       <- Build LIB from OBJ(s)
  495.                MAKELIB.CMD       <- Data file for MAKELIB.BAT
  496.                SCOMPILE.BAT      <- Small model - compile *.c
  497.                SWIN.LIB          <- Small model library
  498.  
  499.              Contents of TC1.ARC (Borland Turbo C Specific)
  500.  
  501.                ALARGE.BAT        <- Large model assembler driver
  502.                ASMALL.BAT        <- Small model assembler driver
  503.                BOSSDEMO.PRJ      <- TC Project file for BOSSDEMO
  504.                LCOMPILE.BAT      <- TCC - Large model - compile *.c 
  505.                LOADTC.BAT        <- Tlink driver for BOSSDEMO
  506.                LWIN.LIB          <- Large model library
  507.                MAKELIB.BAT       <- Build LIB from OBJ(s)
  508.                MAKELIB.CMD       <- Data file for MAKELIB.BAT
  509.                SCOMPILE.BAT      <- TCC - Small model - compile *.c
  510.                SWIN.LIB          <- Small model library
  511.                TCCL.BAT          <- Large model TCC compiler driver
  512.                TCCS.BAT          <- Small model TCC compiler driver
  513.                   
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.                                                            Page: 7
  524.  
  525.  
  526.  
  527.  
  528.  
  529.         The Window BOSS
  530.  
  531.  
  532.  
  533.         4. Installation/Compiling/Linking 
  534.  
  535.         4.1. Installation
  536.  
  537.              By the numbers:
  538.  
  539.                 1) MAKE A BACKUP!!!
  540.  
  541.                 2) Shareware diskette - Use ARCE to unarchive the various 
  542.                    ARCE files.  You will need around 280k of free disk 
  543.                    space for all the files.
  544.  
  545.                    Source Code diskette - Use ARCE to unarchive 
  546.                    CFILES.ARC, ASMFILES.ARC, and DOC.ARC. Then, depending 
  547.                    upon the compiler you intend to use, unarchive only 
  548.                    ONE of the following: LC2.ARC, LC3.ARC, MS3.ARC, 
  549.                    MS4.ARC, DLC.ARC, C86.ARC, TC1.ARC
  550.  
  551.                 3) Copy the LIBrary that corresponds to the compiler you 
  552.                    are using onto the disk(s) you usually use with your 
  553.                    "C" compiler. The LIB file should be on the same 
  554.                    disk(s) that the "C" runtime libraries are on.  Be 
  555.                    sure that the small model library is named "SWIN.LIB". 
  556.                    The large model library should be named "LWIN.LIB".
  557.  
  558.                 4) Copy (or rename) the compiler driver batch file that 
  559.                    corresponds to the compiler you are using to:
  560.  
  561.                                      CSM.BAT
  562.  
  563.                 5) Remember there is no magic to using The Window BOSS. 
  564.                    Its simple!!
  565.  
  566.  
  567.         4.2. Compiling
  568.  
  569.              Compile your source code in the following manner:
  570.  
  571.                                   C>csm hello
  572.  
  573.              ** ALL compilers should be invoked with the compiler driver 
  574.              batch file supplied with The Window BOSS.  This insures that 
  575.              the compiler specific command line parameters are specified 
  576.              correctly.  Alternatively, you can edit "windows.h" and 
  577.              "windows.c" to define the compiler specific equate that 
  578.              applies to your compiler. Note - "windows.c" is included on 
  579.              the source distribution diskette only.
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.         Page: 8
  590.  
  591.  
  592.  
  593.  
  594.  
  595.                                                       The Window BOSS
  596.  
  597.  
  598.  
  599.         Installation/Compiling/Linking - continued.
  600.  
  601.  
  602.  
  603.         4.3. Linking
  604.  
  605.              Simply specify the ?WIN.LIB file that corresponds to the 
  606.              compiler/memory model you are using.  Don't forget to 
  607.              include your compilers runtime library as well.  The 
  608.              following examples should demonstrate the ease of linking.  
  609.  
  610.                   Lattice
  611.                   link c+hello,hello,,swin+lcm+lc
  612.  
  613.                   Computer Innovations
  614.                   link hello,hello,,swin+c86s2s
  615.  
  616.                   Datalight
  617.                   link c+hello,hello,hello,swin+nl
  618.  
  619.                   Microsoft
  620.                   link hello,hello,,swin+slibc
  621.  
  622.                   Borland
  623.                   tlink /c c0s hello,hello,hello,swin emu maths cs
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.                                                            Page: 9
  656.  
  657.  
  658.  
  659.  
  660.  
  661.         The Window BOSS
  662.  
  663.  
  664.  
  665.         4.4. Sample program (hello.c)
  666.  
  667.                 #include "windows.h"
  668.                 main()
  669.                 {
  670.                 WINDOWPTR w1;                   /* window handle */
  671.                 int batrib;                     /* border atrib */
  672.                 int watrib;                     /* window atrib */
  673.  
  674.                 /*
  675.                  * Set attributes:
  676.                  *
  677.                  *      border - blue/white box
  678.                  *      window - white background/black letters
  679.                  *
  680.                 */
  681.  
  682.                   batrib = v_setatr(BLUE,WHITE,0,0);
  683.                   watrib = v_setatr(WHITE,BLACK,0,0);
  684.  
  685.                 /*
  686.                  * Open window at 0,0 - 15 cells wide and 3 cells high
  687.                 */
  688.  
  689.                   w1 = wn_open(0,0,0,15,3,watrib,batrib);
  690.                   if(!w1) exit();
  691.  
  692.                 /*
  693.                  * Print the famous string and wait for key to be struck.
  694.                  * Close window on key strike.. exit.
  695.                 */
  696.  
  697.                   wn_printf(w1,"Hello World...");
  698.                   v_getch();
  699.                   wn_close(w1);
  700.                 }
  701.  
  702.                 /* End */
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.         Page: 10
  722.  
  723.  
  724.  
  725.  
  726.  
  727.                                                       The Window BOSS
  728.  
  729.  
  730.  
  731.         5. General Notes
  732.  
  733.         Genindex, Help, and Popup are support programs and functions for 
  734.         the BOSSDEMO program.  They can, however, serve as valuable aids 
  735.         to you in the creation of help screens and popup menus. The code 
  736.         is provided to demonstrate how the functions in The Window BOSS 
  737.         can be used to create online help screens and popup windows.
  738.  
  739.         Both the C and assembly functions make very heavy use of 
  740.         pointers.  The code contains numerous checks to ensure that 
  741.         memory outside of that in use by the program is not corrupted.  
  742.         If you attempt to do something that would cause memory to be 
  743.         corrupted an error message will appear and your program will 
  744.         exit.  This message will usually say that a bad handle was passed 
  745.         to some function.  You can, if you wish, remove this check by 
  746.         modifying the "wns_err" function in the wn_sup.c file.
  747.  
  748.         Generally speaking, the members of the window control block 
  749.         (refer to windows.h) should not be modified unless you are 
  750.         familiar with how they are used by the various functions.  
  751.  
  752.         Although the routines appear to support the multi page 
  753.         capabilities of the IBM Color Card, actual support of this 
  754.         feature has not been implemented.  Invoking the functions with 
  755.         references to video pages other than 0 might produce interesting 
  756.         but undesired results.  
  757.  
  758.         If you are upgrading from a previous version of The Window BOSS 
  759.         be sure to re-compile and re-link your application.  This will 
  760.         eliminate the possibility of any "unusual" errors due to changes 
  761.         that may have been made to either the functions or the window 
  762.         control block structure.
  763.  
  764.         Several global symbols are used by the various functions:
  765.  
  766.                                  int wn_dmaflg;
  767.                                  int wn_sbit;
  768.                                  int wn_blank;
  769.  
  770.              wn_dmaflg when TRUE enables direct writes into video ram. 
  771.              This is the default setting and should work in all cases.  
  772.              Setting wn_dmaflg to FALSE will disable these direct writes. 
  773.              When wn_dmaflg is FALSE the BIOS video routines are used. 
  774.              This results in slower screen updates.  However, this method 
  775.              does have the advantage of being considered "well behaved" 
  776.              by IBM's Topview, Microsoft's Windows, and DESQ.  
  777.              
  778.              wn_sbit controls the window refresh rate on systems with 
  779.              color cards.  When set to SLOW (defined in windows.h) window 
  780.              displays will appear to be painted on the screen rather than 
  781.              flash displayed. This is the default value.  Setting wn_sbit 
  782.              to FAST enables flash displays. Artistic use of wn_sbit can 
  783.              give your application that extra visual touch. Experiment!
  784.  
  785.  
  786.  
  787.                                                            Page: 11
  788.  
  789.  
  790.  
  791.  
  792.  
  793.         The Window BOSS
  794.  
  795.  
  796.  
  797.         General Notes - continued.
  798.  
  799.  
  800.  
  801.              wn_blank controls how window moves and tiled window updates 
  802.              occur on systems that are equipped with color cards.  Its 
  803.              setting determines whether or not the video image should be 
  804.              shut off when a window is moved or a when a window other 
  805.              than the top window is referenced or activated. TRUE causes 
  806.              the video to be disabled during these activities. This is 
  807.              the default value.  A value of FALSE allows these updates to 
  808.              occur in full view.  Again, artistic use of wn_blank can 
  809.              give your application that extra visual touch.  From a 
  810.              practical standpoint, wn_blank=FALSE should be used when 
  811.              manipulating small windows.
  812.  
  813.         From a performance standpoint, the fastest (flicker & snow free) 
  814.         screen updates will occur with wn_dmaflg=TRUE, wn_sbit=FAST, and 
  815.         wn_blank=FALSE.  The key words here are flicker and snow free.  
  816.         Scrolling speed can be increased with, a proportional increase in 
  817.         flicker (perhaps), by using wn_scroll() function to set the 
  818.         scrolling method for the window to BIOS.  This technique will 
  819.         provide the fastest screen updates and scrolling on color 
  820.         systems.
  821.  
  822.         Several of the compilers support a compile time command line 
  823.         parameter that results in structures being byte aligned instead 
  824.         of word aligned.  In all cases, the default (i.e. no command line 
  825.         parameter) option was used to compile the modules in the various 
  826.         libraries.
  827.  
  828.         Borland Turbo C users who prefer "The Integrated Environment" 
  829.         over the "Command-Line Version" MUST define the symbol 
  830.         "BORLAND=1". (Select Options, Compiler, Defines and enter 
  831.         "BORLAND=1" in the dialogue box without quotes and in upper case.
  832.  
  833.         Programs such as Wordstar and Lotus change the video mode when 
  834.         they run.  If your system is equipped with a color monitor and 
  835.         your windows are appearing in black and white issue a call to 
  836.         v_smode to set the video mode to 3.  Alternatively, you can use 
  837.         the "MODE CO80" command at DOS level before you run your 
  838.         application.  
  839.  
  840.         PLEASE - Pass along your comments.  The Window BOSS is your tool.  
  841.         If, heaven forbid, you find any logic errors let us know.  We are 
  842.         committed to making The Window BOSS the best price performer 
  843.         available.  Call, write, or if you prefer, you can reach Phil 
  844.         Mongelluzzo via CompuServe [71565,1001].  Fido fans can leave mail 
  845.         on our support BBS at (203)-271-1579. There is no reason to sit, 
  846.         steam, or complain to those who can not provide any real form of 
  847.         support.  Lastly, if you use The Window BOSS, register your copy.  
  848.         The Shareware System will only work if you support it!
  849.  
  850.  
  851.  
  852.  
  853.         Page: 12
  854.  
  855.  
  856.  
  857.  
  858.  
  859.                                                       The Window BOSS
  860.  
  861.  
  862.  
  863.         6. Making Changes
  864.  
  865.         First, be sure that you are familiar with the existing 
  866.         conventions and compiler specific feature test switches.  You 
  867.         can refer to the various BATch files for specific examples of 
  868.         compiler specific defines etc.  With the exception of the ASM 
  869.         files, compiler and memory model specific feature test 
  870.         switches are specified on the command line.  The ASM files 
  871.         require a few specific instructions:
  872.              
  873.           Editing:
  874.  
  875.              Computer Innovations, Lattice, and Microsoft 2.XX
  876.  
  877.                 1) vlib.asm     Set LATTICE to 1 for Lattice and Microsoft 2.XX
  878.                                 Set LATTICE to 0 for Computer Innovations.
  879.  
  880.                 2) model.h      CI86 only - Set "SMALL" & "LARGE"
  881.                                 See MODEL.H for discussion.
  882.  
  883.              Microsoft 3.00 & 4.00, Borland Turbo C
  884.  
  885.                 1) msvlib.asm   Set LDATA & LPROG to TRUE or FALSE 
  886.                                 LDATA is TRUE for LARGE DATA
  887.                                 LPROG is TRUE for LARGE CODE
  888.  
  889.                                 Assemble using:
  890.  
  891.                                       MASM /MX MSVLIB;
  892.  
  893.              Datalight
  894.  
  895.                 1) dos.mac      Edit to reflect memory model. 
  896.                                 Additionally, MACROS.ASM must be present.
  897.                                         
  898.         Please note that we assume that you have installed your compiler 
  899.         exactly as suggested in the compiler's manual.  This includes 
  900.         suggested sub-directories, PATH specifiers, and environment 
  901.         setup.  Creating code that compiles under numerous compilers is 
  902.         not an easy task.  If you run into problems review your compilers 
  903.         documentation and browse through the batch files provided.  If 
  904.         you still have problems - call!  The most common problem occurs 
  905.         with Lattice - make sure you have the correct DOS.MAC and that 
  906.         your PATH has been specified correctly. 
  907.  
  908.         The distribution libraries were created on an IBMPC/AT under DOS 
  909.         3.2 using Lattice (Lifeboat) 2.15E, Lattice 3.10, Microsoft 3.00, 
  910.         Microsoft 4.0, Borland Turbo C 1.0, and Datalight 2.12.  Marion 
  911.         was used to create the LIB files for CI86.  Microsoft's LIB was 
  912.         used for the Microsoft variants and Datalight. Lattice libraries 
  913.         were created with the library managers shipped with the 
  914.         respective versions of the compiler.
  915.  
  916.  
  917.  
  918.  
  919.                                                            Page: 13
  920.  
  921.  
  922.  
  923.  
  924.  
  925.         The Window BOSS
  926.  
  927.  
  928.  
  929.         Making Changes - continued.
  930.  
  931.  
  932.  
  933.         Depending upon the compiler being used, several warning errors 
  934.         will be generated.  Warnings created by the unmodified 
  935.         distribution code can be safely ignored - all others should be 
  936.         investigated.
  937.  
  938.         A note of caution... PC/MS-DOS Version 2.XX's LINK can complain 
  939.         if you build a new library that takes advantage of later LINK 
  940.         enhancements.  If this occurs, you can (1) upgrade to DOS 3.1++ 
  941.         or, (2) get a librarian that isn't so smart!!  We suggest going 
  942.         to the later rev of DOS.
  943.  
  944.         If you have need of a model specific library that is not part of 
  945.         the distribution either create it yourself or drop us a note and 
  946.         we will ship one to you.  We can no longer distribute ALL library 
  947.         models for ALL compilers and still keep everything on a single 
  948.         diskette.  We regret any inconvenience that this causes but 
  949.         the compiler vendors seem to be having a field day with memory 
  950.         models.  Any comments you have on the subject are welcomed.
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.         Page: 14
  986.  
  987.  
  988.  
  989.  
  990.  
  991.                                                       The Window BOSS
  992.  
  993.  
  994.  
  995.         7. Tiled Windows
  996.  
  997.         The Window BOSS fully supports the concept of tiled or 
  998.         overlapping windows.  That is to say that you can have several 
  999.         windows on the screen at the same time and freely access any one 
  1000.         of them without having to be concerned with the order in which 
  1001.         they were opened or whether or not any other windows overlap the 
  1002.         one you wish to access.  The Window BOSS employs the "most 
  1003.         recently used is active" concept.  This concept is based on the 
  1004.         following:
  1005.  
  1006.              . The last window referenced is the current active 
  1007.                window.  
  1008.  
  1009.              . The current active window is always the top window 
  1010.                tile.
  1011.  
  1012.         For example, let us assume that you have opened three overlapping 
  1013.         windows in the following order; w1, w2, w3. w3 is considered to 
  1014.         be the top window tile because it was the last window referenced. 
  1015.         If you now reference, or explicitly activate, w2 The Window BOSS 
  1016.         will automatically adjust the screen image to insure that w2 is 
  1017.         now the top window tile with w3 and w1 being partially hidden by 
  1018.         w2.
  1019.  
  1020.                   Before                   After
  1021.  
  1022.                   +----------+             +----------+
  1023.                   |  W1      |             | W1       |
  1024.                   |  +----------+          |  +----------+
  1025.                   |  | W2       |          |  | W2       |
  1026.                   |  |  +------------+     |  |          |----+
  1027.                   |  |  | W3         |     |  |          | W3 |
  1028.                   |  |  |            |     |  |          |    |
  1029.                   |  |  +------------+     |  |          |----+
  1030.                   |  |          |          |  |          |
  1031.                   |  +----------+          |  +----------+
  1032.                   |          |             |          |
  1033.                   +----------+             +----------+
  1034.  
  1035.         It is extremely important to keep in mind that The Window BOSS 
  1036.         will automatically activate (bring to the top) the window being 
  1037.         referenced.  Keep your screen layouts attractive and uncluttered. 
  1038.         This  will  minimize window thrashing which is both annoying  and 
  1039.         time consuming.
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.                                                            Page: 15
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.         The Window BOSS
  1058.  
  1059.  
  1060.  
  1061.         8. Future Directions
  1062.  
  1063.         The Window BOSS will continue to be enhanced.  In fact, The BOSS 
  1064.         is about to hire a clerk to assist with data entry!  The addition 
  1065.         of The DATA CLERK to The Window BOSS's organization should assist 
  1066.         those who have the need for more formal data validation routines 
  1067.         and input field formatting.  Naturally, we will keep things 
  1068.         simple, consistent, and easy to use.  Time permitting, The DATA 
  1069.         CLERK should be on staff by mid year (July 1987).
  1070.  
  1071.         Support for Microsoft 2.XX, Lattice 2.XX, and Microsoft 3.0 will 
  1072.         be dropped as soon as all registered users have ceased to 
  1073.         use these versions.  If you are using any of these compilers 
  1074.         you should either upgrade or purchase the latest release.
  1075.  
  1076.         9. Functions
  1077.  
  1078.         The Window BOSS's functions fall into two major groups, those 
  1079.         that manipulate windows and those that deal with the video or 
  1080.         keyboard interface at a relatively low level.  All window 
  1081.         manipulation functions being with the prefix "wn_" as in 
  1082.         "wn_open", while all video and keyboard based functions begin 
  1083.         with "v_" or "_" as in "v_getch" and "_putch".  This convention 
  1084.         makes it easy to remember where to look when you want to do 
  1085.         something.  Additionally, there are several global functions 
  1086.         which which begin with "wns_".  These functions, although visible 
  1087.         to the outside world, are used internally by The Window BOSS. 
  1088.  
  1089.         The Window BOSS has been tested on the IBMPC/XT/AT and 3270 PC 
  1090.         equipped with monochrome, CGA, and EGA video boards. All 
  1091.         functions with the exception of v_style(), which does not do well 
  1092.         on the EGA and 3270 PC, work as specified.
  1093.  
  1094.         Several functions require an attribute byte.  The attribute byte 
  1095.         contains background specific data in the upper 4 bits and 
  1096.         foreground specific data in the lower 4 bits.  Color and bit 
  1097.         definitions can be found in windows.h. You can use a statement of 
  1098.         the form: atrib = ((BLUE << 4) | WHITE); to set the attribute to 
  1099.         the correct form.  The preceding example would result in a BLUE 
  1100.         background with WHITE characters.  The macro v_setatr in 
  1101.         windows.h can also be used.
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.         Page: 16
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.                                                       The Window BOSS
  1124.  
  1125.  
  1126.  
  1127.         9.1. wn_open -- open window 
  1128.  
  1129.         USAGE
  1130.  
  1131.           wn = (WINDOWPTR)wn_open(page, row, col, width, height, atrib, batrib)
  1132.           int page, row, col, width, height, atrib, batrib;
  1133.  
  1134.                 page -  0 ,1000, or 800. 
  1135.                         1000 opens a borderless page
  1136.                          800 opens an exploding window
  1137.                 row  -  row of upper left hand corner of the window
  1138.                 col  -  column of upper left hand corner of the window
  1139.                 width - INSIDE dimension (max value is 78, 80 if page = 1000)
  1140.                 height- INSIDE dimension (max value is 23, 25 if page = 1000)
  1141.                 atrib - attribute to be used IN the window
  1142.                 batrib- attribute to be used for the border
  1143.  
  1144.           wn_open is usually the first function called to create and use 
  1145.           a window.  wn_open dynamically allocates memory to save the 
  1146.           area defined by row, col, width, and height - saves the image, 
  1147.           opens the window and homes the logical cursor to row 0, col 0 
  1148.           of the window.  The window is now ready to be used by the 
  1149.           various window management routines.  
  1150.  
  1151.           Attributes are defined in windows.h.
  1152.  
  1153.         RETURNS
  1154.  
  1155.           wn = window handle or NULL if error
  1156.  
  1157.         CAUTIONS
  1158.  
  1159.           Width and height are inside dimensions. If you want a window 
  1160.           with a work area of 10 rows and 5 columns, the width is 7 and 
  1161.           the height is 12.  
  1162.           
  1163.           The flashing cursor will not be displayed unless wn_sync() has 
  1164.           been called with a value of TRUE.  
  1165.  
  1166.           The window "wn" automatically becomes the top window tile upon 
  1167.           return.
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.                                                            Page: 17
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.         The Window BOSS
  1190.  
  1191.  
  1192.  
  1193.         9.2. wn_title -- title window
  1194.  
  1195.         USAGE
  1196.  
  1197.           wn_title(wn,title)
  1198.           WINDOWPTR wn;
  1199.           char *title;
  1200.  
  1201.                 wn    - window handle
  1202.                 title - string pointer to title
  1203.  
  1204.           The title is displayed on the top border of the window using 
  1205.           the currently defined border attribute.  The cursor is 
  1206.           positioned off the screen after the title is written.  
  1207.  
  1208.         RETURNS
  1209.  
  1210.           TRUE if all is well, NULL if the title is to large to fit on 
  1211.           the top border or errror.
  1212.  
  1213.         CAUTIONS
  1214.  
  1215.           The window "wn" automatically becomes the top window tile upon 
  1216.           return.
  1217.  
  1218.  
  1219.  
  1220.         9.3. wn_titla -- title window with attribute
  1221.  
  1222.         USAGE
  1223.  
  1224.           wn_titla(wn,title,atrib)
  1225.           WINDOWPTR wn;
  1226.           char *title;
  1227.           int atrib;
  1228.  
  1229.                 wn    - window handle
  1230.                 title - string pointer to title
  1231.                 atrib - attribute to use for text
  1232.  
  1233.           The title is displayed on the top border of the window using 
  1234.           the attribute specified by atrib.  The cursor is positioned off 
  1235.           the screen after the title is written.  
  1236.  
  1237.         RETURNS
  1238.  
  1239.           TRUE if all is well, NULL if the title is to large to fit on 
  1240.           the top border or error.
  1241.  
  1242.         CAUTIONS
  1243.  
  1244.           The window "wn" automatically becomes the top window tile upon 
  1245.           return.
  1246.  
  1247.  
  1248.  
  1249.         Page: 18
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.                                                       The Window BOSS
  1256.  
  1257.  
  1258.  
  1259.         9.4. wn_close -- close window
  1260.  
  1261.         USAGE
  1262.  
  1263.           wn_close(wn) 
  1264.           WINDOWPTR wn; 
  1265.  
  1266.                 wn - handle of a previously opened window.
  1267.  
  1268.           wn_close removes the window specified by wn and restores the 
  1269.           screen area under the window to its previous contents.  The 
  1270.           memory allocated by wn_open is returned to the free list.  The 
  1271.           cursor is positioned to where it was located prior to the 
  1272.           wn_open call.  
  1273.  
  1274.         RETURNS 
  1275.  
  1276.           TRUE or NULL if error
  1277.  
  1278.         CAUTIONS 
  1279.  
  1280.           None.
  1281.  
  1282.  
  1283.  
  1284.         9.5. wn_save -- save screen image 
  1285.  
  1286.         USAGE
  1287.  
  1288.           wn = (WINDOWPTR)wn_save(page, row, col, width, height)
  1289.           int page, row, col, width, height;
  1290.  
  1291.                 page -  always 0.
  1292.                 row  -  row of upper left hand corner of the window
  1293.                 col  -  column of upper left hand corner of the window
  1294.                 width - INSIDE dimension (max value is 78)
  1295.                 height- INSIDE dimension (max value is 23)
  1296.  
  1297.           wn_save can be used to save areas of the screen for purposes 
  1298.           other than windows.  
  1299.  
  1300.           Memory for the screen image is dynamically allocated.
  1301.  
  1302.         RETURNS
  1303.  
  1304.           wn = window handle or NULL if error
  1305.  
  1306.         CAUTIONS
  1307.  
  1308.           The window handle returned by wn_save should only be used with 
  1309.           wn_restore, use with other routines could produce unpredictable 
  1310.           results.
  1311.  
  1312.  
  1313.  
  1314.  
  1315.                                                            Page: 19
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.         The Window BOSS
  1322.  
  1323.  
  1324.  
  1325.         9.6. wn_restore -- restore saved screen image
  1326.  
  1327.         USAGE
  1328.  
  1329.           wn_restore(wn)
  1330.           WINDOWPTR wn;
  1331.  
  1332.                 wn - handle of previously wn_save(ed) window.
  1333.  
  1334.           Restores the screen image corresponding to the window handle 
  1335.           wn, allocated memory is returned to the free list.
  1336.  
  1337.         RETURNS
  1338.  
  1339.           TRUE or NULL if error
  1340.  
  1341.         CAUTIONS
  1342.  
  1343.           This function should only be used with window handles obtained 
  1344.           from wn_save.
  1345.  
  1346.  
  1347.  
  1348.         9.7. wn_move -- move window
  1349.  
  1350.         USAGE
  1351.  
  1352.           wn = (WINDOWPTR)wn_move(wn,row,col)
  1353.  
  1354.                 wn -  handle of window to be moved
  1355.                 row - destination row
  1356.                 col - destination column
  1357.  
  1358.           Moves the window corresponding to wn to a new location.  The 
  1359.           cursor is positioned off the screen after the call.  
  1360.  
  1361.         RETURNS
  1362.  
  1363.           Window handle of the window moved or NULL if error.
  1364.  
  1365.         CAUTIONS
  1366.  
  1367.           The window "wn" automatically becomes the top window tile upon 
  1368.           return.
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.         Page: 20
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.                                                       The Window BOSS
  1388.  
  1389.  
  1390.  
  1391.         9.8. wn_locate -- locate cursor in window
  1392.  
  1393.         USAGE
  1394.  
  1395.           wn_locate(wn, row, col)
  1396.           WINDOWPTR wn;
  1397.           int row, col;
  1398.  
  1399.                 wn  - window handle
  1400.                 row - row to position to (relative to window origin)
  1401.                 col - column to position to (relative to window origin)
  1402.  
  1403.           Position the cursor to the row and column specified.  Row and  
  1404.           Column values are relative to the origin of the window (0,0 
  1405.           locates the cursor in the upper left hand corner of the window 
  1406.           referenced by wn).
  1407.  
  1408.         RETURNS
  1409.  
  1410.           TRUE or NULL if error
  1411.  
  1412.         CAUTIONS
  1413.  
  1414.           Values of row & col are not checked.
  1415.  
  1416.           The window "wn" automatically becomes the top window tile upon 
  1417.           return.
  1418.  
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.                                                            Page: 21
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.         The Window BOSS
  1454.  
  1455.  
  1456.  
  1457.         9.9. wn_printf -- window printf
  1458.  
  1459.         USAGE
  1460.  
  1461.           wn_printf(wn, cs, args)
  1462.           WINDOWPTR wn;
  1463.           char *cs;
  1464.           ?? arg1 ... argn;
  1465.  
  1466.                 wn   - window handle
  1467.                 cs   - format control string
  1468.                 args - argument list
  1469.  
  1470.           printf function for windows!
  1471.  
  1472.         RETURNS
  1473.  
  1474.           TRUE or NULL if error
  1475.  
  1476.         CAUTIONS
  1477.  
  1478.           Output string length is limited to 254 bytes.
  1479.           Registered users can, of course, edit the wn_printf function 
  1480.           set the limit to whatever they wish.
  1481.  
  1482.           Integer only for Microsoft 3.0.  This limitation 
  1483.           be overcome by using sprintf in conjunction with wn_printf.  
  1484.           For example:
  1485.  
  1486.                   char buf[256];
  1487.                        ..
  1488.                        ..
  1489.                   sprintf(buf,"%d %l %x\n", intval, longval, hexval);
  1490.                   wn_printf(wn, buf);
  1491.  
  1492.           Full support in Microsoft 4.0, Lattice, CI86, and Datalight.  
  1493.  
  1494.           The window "wn" automatically becomes the top window tile upon 
  1495.           return.
  1496.  
  1497.  
  1498.  
  1499.  
  1500.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.         Page: 22
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519.                                                       The Window BOSS
  1520.  
  1521.  
  1522.  
  1523.         9.10. wn_puts -- put string (high speed)
  1524.  
  1525.         USAGE
  1526.  
  1527.           wn_puts(wn, row, col, string)
  1528.           WINDOWPTR wn;
  1529.           int row, col;
  1530.           char *string;
  1531.  
  1532.                 wn -    window handle
  1533.                 row -   row to print the string at
  1534.                 col -   column to print the string at
  1535.                 string- the string to print
  1536.  
  1537.           Row and Col are relative to the origin of the window.
  1538.  
  1539.           The cursor is displayed only if wn_synflg has been called with 
  1540.           a value of TRUE.
  1541.  
  1542.         RETURNS
  1543.  
  1544.           TRUE or NULL if error
  1545.  
  1546.         CAUTIONS
  1547.  
  1548.           wn_puts writes the string directly to the video ram. Tabs, line 
  1549.           feeds, carriage returns and other control characters are not 
  1550.           filtered or processed in any way.
  1551.  
  1552.           Range checks are not performed to insure the specified string 
  1553.           can be contained in the window.  
  1554.  
  1555.           The window "wn" automatically becomes the top window tile upon 
  1556.           return.
  1557.  
  1558.  
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.  
  1577.  
  1578.  
  1579.                                                            Page: 23
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.         The Window BOSS
  1586.  
  1587.  
  1588.  
  1589.         9.11. wn_gets -- get string with validation
  1590.  
  1591.         USAGE
  1592.  
  1593.           (char *) wn_gets(wn, buf, va, uva)
  1594.           WINDOWPTR wn;
  1595.           char *buf;
  1596.           int va;
  1597.           char *uva;
  1598.  
  1599.                 wn -    window handle
  1600.                 buf -   user buffer for string
  1601.                 va -    input validation to be used
  1602.                 uva -   user validation list [optional]
  1603.  
  1604.           va specifies the type of input validation to be performed as 
  1605.           data is being entered. Options are:
  1606.  
  1607.                 (1) none                no restrictions - accept everything
  1608.                 (2) integer             accept: 0 thru 9 + -
  1609.                 (3) floating point      accept: 0 thru 9 + - .
  1610.                 (4) alpha only          accept: a thru z (upper & lower case)
  1611.                 (5) upper case only     accept: A thru Z 
  1612.                 (6) validation list     accept: only those characters
  1613.                     (optional)                  specified in the uva string.
  1614.  
  1615.                 ORing va with 0x8000 disables data entry character echo.
  1616.  
  1617.           The following editing functions are supported:
  1618.  
  1619.                 . backspace & rubout do the logical things
  1620.                 . ^U, ^X, and ^C wipe the field clean
  1621.                 . Return and Esc end the input function 
  1622.  
  1623.           Data entry takes place at the current logical cursor location. 
  1624.           You  can, of course, position the cursor to where you wish 
  1625.           prior to calling wn_gets.
  1626.  
  1627.           Example:
  1628.  
  1629.                 wn_printf(wn,"Enter your name > ");
  1630.                 wn_get(wn,buf,4,0);
  1631.  
  1632.         RETURNS
  1633.  
  1634.           Pointer to buf or NULL if error
  1635.  
  1636.         CAUTIONS
  1637.  
  1638.           The window "wn" automatically becomes the top window tile upon 
  1639.           return.
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.         Page: 24
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.                                                       The Window BOSS
  1652.  
  1653.  
  1654.  
  1655.         9.12. wn_putsa -- put string and attribute (high speed)
  1656.  
  1657.         USAGE
  1658.  
  1659.           wn_putsa(wn, row, col, string, atrib)
  1660.           WINDOWPTR wn;
  1661.           int row, col;
  1662.           char *string;
  1663.           int atrib;
  1664.  
  1665.                 wn -    window handle
  1666.                 row -   row to print the string at
  1667.                 col -   column to print the string at
  1668.                 string- the string to print
  1669.                 atrib - attribute to be used with string
  1670.  
  1671.           Row and Col are relative to the origin of the window.
  1672.  
  1673.           The cursor is displayed only if wn_synflg has been called with 
  1674.           a value of TRUE.
  1675.  
  1676.         RETURNS
  1677.  
  1678.           TRUE or NULL if error
  1679.  
  1680.         CAUTIONS
  1681.  
  1682.           wn_puts writes the string directly to the video ram. Tabs, line 
  1683.           feeds, carriage returns and other control characters are not 
  1684.           filtered or processed in any way.
  1685.  
  1686.           Range checks are not performed to insure the specified string 
  1687.           can be contained in the window.  
  1688.  
  1689.           The window "wn" automatically becomes the top window tile upon 
  1690.           return.
  1691.  
  1692.  
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.                                                            Page: 25
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.         The Window BOSS
  1718.  
  1719.  
  1720.  
  1721.         9.13. wn_insrow -- insert row in window
  1722.  
  1723.         USAGE
  1724.  
  1725.           wn_insrow(wn, row)
  1726.           WINDOWPTR wn;
  1727.           int row;
  1728.  
  1729.                 wn -  window handle
  1730.                 row - row at which a line is to be inserted
  1731.  
  1732.           Row is relative to the origin of the window.  All lines below 
  1733.           the row specified are scrolled down.  The currently defined 
  1734.           window attribute is used to clear the lines inserted.  
  1735.  
  1736.         RETURNS
  1737.  
  1738.           TRUE or NULL if error
  1739.  
  1740.         CAUTIONS
  1741.  
  1742.           The window "wn" automatically becomes the top window tile upon 
  1743.           return.
  1744.  
  1745.  
  1746.  
  1747.         9.14. wn_delrow -- delete row from window
  1748.  
  1749.         USAGE
  1750.  
  1751.           wn_delrow(wn, row)
  1752.           WINDOWPTR wn;
  1753.           int row;
  1754.  
  1755.                 wn -  window handle
  1756.                 row - row at which a line is to be deleted
  1757.  
  1758.           Row is relative to the origin of the window.  All lines below 
  1759.           the row specified are scrolled up. The currently defined window 
  1760.           attribute is used to clear the lines inserted.  
  1761.  
  1762.         RETURNS
  1763.  
  1764.           TRUE or NULL if error
  1765.  
  1766.         CAUTIONS
  1767.           The window "wn" automatically becomes the top window tile upon 
  1768.           return.
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.         Page: 26
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.                                                       The Window BOSS
  1784.  
  1785.  
  1786.  
  1787.         9.15. wn_clr -- clear window
  1788.  
  1789.         USAGE
  1790.  
  1791.           wn_clr(wn)
  1792.           WINDOWPTR wn;
  1793.  
  1794.                 wn - window handle
  1795.  
  1796.           The window corresponding to wn is cleared (mini clear screen).  
  1797.           The currently defined window attribute is used to clear the 
  1798.           interior of the window.  
  1799.  
  1800.           The windows virtual cursor is homed.
  1801.  
  1802.         RETURNS
  1803.  
  1804.           TRUE or NULL if error
  1805.  
  1806.         CAUTIONS
  1807.  
  1808.           The window "wn" automatically becomes the top window tile upon 
  1809.           return.
  1810.  
  1811.  
  1812.  
  1813.         9.16. wn_activate -- activate window
  1814.  
  1815.         USAGE
  1816.  
  1817.           wn_activate(wn)
  1818.           WINDOWPTR wn;
  1819.  
  1820.              wn - window handle
  1821.  
  1822.           Activate a previously opened window.  The window specified by 
  1823.           "wn" becomes the top window tile.
  1824.  
  1825.         RETURNS
  1826.  
  1827.           TRUE or NULL if error
  1828.  
  1829.         CAUTIONS
  1830.  
  1831.           None.
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.                                                            Page: 27
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.         The Window BOSS
  1850.  
  1851.  
  1852.  
  1853.         9.17. wn_color -- set window & border attribute
  1854.  
  1855.         USAGE
  1856.  
  1857.           wn_color(wn, atrib, batrib)
  1858.           WINDOWPTR wn;
  1859.           unsigned int atrib, batrib;
  1860.  
  1861.                 wn -    window handle
  1862.                 atrib - attribute to be used for the window
  1863.                 batrib- attribute to be used for the border
  1864.  
  1865.           wn_color sets the attribute to be used for all subsequent 
  1866.           operations in the window.  The attribute byte contains the 
  1867.           background specific data in the upper 4 bits and the foreground 
  1868.           specific data in the lower 4 bits.  Color and bit definitions 
  1869.           can be found in windows.h. You can use a statement of the form:
  1870.  
  1871.                          atrib = (bground << 4 | fground);
  1872.  
  1873.           to set the attribute to the correct format.  
  1874.  
  1875.           Attributes are defined in windows.h.
  1876.  
  1877.         RETURNS
  1878.  
  1879.           Nothing.
  1880.  
  1881.         CAUTIONS
  1882.  
  1883.           None.
  1884.  
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.  
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.         Page: 28
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.                                                       The Window BOSS
  1916.  
  1917.  
  1918.  
  1919.         9.18. wn_wrap -- set/clear line wrap flag
  1920.  
  1921.         USAGE
  1922.  
  1923.           wn_wrap(wn, flag) 
  1924.           WINDOWPTR wn;     
  1925.           int flag;
  1926.  
  1927.                 wn -   window handle
  1928.                 flag - wrap flag (TRUE or FALSE)
  1929.  
  1930.           Sets the line wrap flag for window functions.  If line wrap is 
  1931.           true, output that exceeds the width of a window is 
  1932.           automatically placed on the next line.  When the line wrap flag 
  1933.           is false, output that exceeds the width of the window is lost.  
  1934.  
  1935.         RETURNS
  1936.  
  1937.           Nothing.
  1938.  
  1939.         CAUTIONS
  1940.  
  1941.           None.
  1942.  
  1943.  
  1944.  
  1945.         9.19. wn_sync -- set/clear cursor synchronization flag
  1946.  
  1947.         USAGE
  1948.  
  1949.           wn_sync(wn, flag) 
  1950.           WINDOWPTR wn;     
  1951.           int flag;
  1952.  
  1953.                 wn -   window handle
  1954.                 flag - synchronization flag (TRUE or FALSE)
  1955.  
  1956.           When wn_sync is called with a value of TRUE all subsequent text 
  1957.           output to the window will have a flashing (normal) cursor 
  1958.           displayed following the last character output. Calling wn_sync 
  1959.           with a value of false inhibits the cursor from physically 
  1960.           advancing (it is always logically advanced).  
  1961.  
  1962.         RETURNS
  1963.  
  1964.           Nothing.
  1965.  
  1966.         CAUTIONS
  1967.  
  1968.           None.
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.  
  1975.                                                            Page: 29
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.         The Window BOSS
  1982.  
  1983.  
  1984.  
  1985.         9.20. wn_scroll -- set scrolling method for window
  1986.  
  1987.         USAGE
  1988.  
  1989.           wn_scroll(wn,method)
  1990.           WINDOWPTR wn;
  1991.           int method;
  1992.  
  1993.                   wn -      window handle.
  1994.                   method -  BIOS or DMAS
  1995.  
  1996.            Set the method to be used to scroll the contents of the window 
  1997.            to use either the rom bios (BIOS), or the flicker free DMA 
  1998.            logic.  BIOS and DMAS are defined in "windows.h".  
  1999.  
  2000.            The default scrolling mode is DMAS.
  2001.  
  2002.            The Window BOSS incorporates machine independent logic that 
  2003.            ensures that scrolling on color systems is performed in such a 
  2004.            way as to totally eliminate snow and flicker.  This logic, 
  2005.            although bulletproof, can slow scrolling down.  Setting the 
  2006.            scrolling method to BIOS provides a machine independent way to 
  2007.            improve the scrolling speed with a (perhaps) proportional 
  2008.            increase in flicker.  Keep in mind that recent developments in 
  2009.            CGA and EGA technology have, for the most part, eliminated 
  2010.            scrolling flicker at the hardware level.  If your system is 
  2011.            equipped with one of these boards, you may achieve a 
  2012.            noticeable improvement in scrolling speed by using wn_scroll() 
  2013.            to set the scrolling method to BIOS.  Additionally, there are 
  2014.            several console device drivers (FANSI and NANSI to mention 
  2015.            two) that "patch" the bios routines to achieve the same 
  2016.            result.  
  2017.  
  2018.            Setting the scrolling method to BIOS when wn_dmaflg=FALSE has 
  2019.            no effect.
  2020.  
  2021.         RETURNS
  2022.  
  2023.            Nothing.
  2024.  
  2025.         CAUTIONS
  2026.  
  2027.            Color systems only.
  2028.  
  2029.  
  2030.  
  2031.  
  2032.  
  2033.  
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039.  
  2040.  
  2041.         Page: 30
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.                                                       The Window BOSS
  2048.  
  2049.  
  2050.  
  2051.         9.21. wn_dma -- set/clear write ram directly flag
  2052.  
  2053.         USAGE
  2054.  
  2055.           wn_dma(flag)      
  2056.           int flag;         
  2057.  
  2058.                 flag - write to video ram flag (TRUE or FALSE).
  2059.  
  2060.           The windowing routines assume that your video card supports 
  2061.           direct access to the video ram (normal for monochrome 
  2062.           monitors).  
  2063.  
  2064.         RETURNS
  2065.  
  2066.           Nothing.
  2067.  
  2068.         CAUTIONS
  2069.  
  2070.           None.
  2071.  
  2072.  
  2073.  
  2074.         9.22. wn_fixcsr -- update window cursor position
  2075.  
  2076.         USAGE
  2077.  
  2078.           wn_fixcsr(wn)     
  2079.           WINDOWPTR wn;     
  2080.  
  2081.                 wn - window handle
  2082.  
  2083.           wn_fixcsr is a companion routine to wn_sync.  Causes the 
  2084.           physical cursor to be placed at the logical cursor location.  
  2085.           It is typically called after wn_sync has been called to disable 
  2086.           cursor synchronization.  wn_fixcsr does not alter the state of 
  2087.           the windows cursor synchronization flag.  
  2088.  
  2089.         RETURNS
  2090.  
  2091.           TRUE or NULL if error
  2092.  
  2093.         CAUTIONS
  2094.  
  2095.           The window "wn" automatically becomes the top window tile upon 
  2096.           return.
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.                                                            Page: 31
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.         The Window BOSS
  2114.  
  2115.  
  2116.  
  2117.         9.23. wn_boxset -- set box drawing character set
  2118.  
  2119.         USAGE
  2120.  
  2121.           wn_boxset(ul, ur, tb, sd, ll, lr);
  2122.           int ul, ur, tb, sd, ll, lr;
  2123.  
  2124.             ul - upper left corner character
  2125.             ur - upper right corner character
  2126.             tb - top/bottom line character
  2127.             sd - left/right side character
  2128.             ll - lower left corner character
  2129.             lr - lower right corner character
  2130.  
  2131.           wn_boxset set the characters to be used to frame all future 
  2132.           windows.
  2133.  
  2134.         RETURNS
  2135.  
  2136.           Nothing.
  2137.  
  2138.         CAUTIONS
  2139.  
  2140.           None.
  2141.  
  2142.  
  2143.  
  2144.         9.24. wn_natrib -- set new attribute in window NOW!
  2145.  
  2146.         USAGE
  2147.  
  2148.           wn_natrib(wn,atrib)
  2149.           WINDOWPTR wn;
  2150.           int atrib;
  2151.  
  2152.             wn    - window handle
  2153.             atrib - attribute to set the window specified by wn to.  
  2154.  
  2155.           The attributes of the window are changed immediately.
  2156.  
  2157.           Attributes are defined in window.h
  2158.  
  2159.           The border is not altered.
  2160.  
  2161.         RETURNS
  2162.  
  2163.           TRUE or NULL if error
  2164.  
  2165.         CAUTIONS
  2166.  
  2167.           The window "wn" automatically becomes the top window tile upon 
  2168.           return.
  2169.  
  2170.  
  2171.  
  2172.  
  2173.         Page: 32
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.                                                       The Window BOSS
  2180.  
  2181.  
  2182.  
  2183.         9.25. wn_dborder -- draw (replace) border on window
  2184.  
  2185.         USAGE
  2186.  
  2187.           wn_dborder(wn, ul, ur, tb, sd, ll, lr);
  2188.           WINDOWPTR wn;
  2189.           int ul, ur, tb, sd, ll, lr;
  2190.  
  2191.             wn - window handle
  2192.             ul - upper left corner character
  2193.             ur - upper right corner character
  2194.             tb - top/bottom line character
  2195.             sd - left/right side character
  2196.             ll - lower left corner character
  2197.             lr - lower right corner character
  2198.  
  2199.           The currently defined border attribute is used when drawing the 
  2200.           border.
  2201.  
  2202.         RETURNS
  2203.  
  2204.           TRUE or NULL if error
  2205.  
  2206.         CAUTIONS
  2207.  
  2208.           The window "wn" automatically becomes the top window tile upon 
  2209.           return.
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.  
  2220.  
  2221.  
  2222.  
  2223.  
  2224.  
  2225.  
  2226.  
  2227.  
  2228.  
  2229.  
  2230.  
  2231.  
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.  
  2238.  
  2239.                                                            Page: 33
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.         The Window BOSS
  2246.  
  2247.  
  2248.  
  2249.         9.26. _getca -- get character and attribute
  2250.  
  2251.         USAGE
  2252.  
  2253.           unsigned int _getca(page, row, col)
  2254.           int page, row, col;
  2255.  
  2256.  
  2257.                 page - video page #
  2258.                 row -  row value (0-24)
  2259.                 col -  column value (0-79)
  2260.  
  2261.           _getca fetches the character and attribute at the screen 
  2262.           coordinates defined by row and column.  _getca is a general 
  2263.           purpose routine and can be used outside of the window 
  2264.           environment.
  2265.  
  2266.         RETURNS
  2267.  
  2268.           The character and attribute as an unsigned int.  The attribute 
  2269.           is in the upper byte, the character is in the lower byte.
  2270.  
  2271.         CAUTIONS
  2272.  
  2273.           None.
  2274.  
  2275.  
  2276.  
  2277.         9.27. _putca -- put character and attribute 
  2278.  
  2279.         USAGE
  2280.  
  2281.           _putca(page, atch, row, col);
  2282.           int page, row, col;
  2283.           unsigned atch;
  2284.  
  2285.                 page - video page #
  2286.                 atch - attribute and character
  2287.                          attribute in high order byte
  2288.                          character in low order byte
  2289.                 row -  row position for character (0-24)
  2290.                 col -  column position for character (0-79)
  2291.  
  2292.           _putch is a general purpose routine that can be used outside of 
  2293.           the window environment.
  2294.  
  2295.         RETURNS
  2296.  
  2297.           Nothing.
  2298.  
  2299.         CAUTIONS
  2300.  
  2301.           None.
  2302.  
  2303.  
  2304.  
  2305.         Page: 34
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.                                                       The Window BOSS
  2312.  
  2313.  
  2314.  
  2315.         9.28. _vidblt -- video block transfer
  2316.  
  2317.         USAGE
  2318.  
  2319.           _vidblt(sseg, soff, dseg, doff, n);
  2320.           unsigned sseg, soff, dseg, doff;
  2321.           int n;
  2322.  
  2323.                 sseg - source segment
  2324.                 soff - source offset
  2325.                 dseg - destination segment
  2326.                 doff - destination offset
  2327.                 n -    number of bytes to BLT
  2328.  
  2329.           _vidblt is similar to the lattice movedata() function except 
  2330.           that it waits for the video retrace signal before performing 
  2331.           the block transfer.
  2332.  
  2333.           _vidblt is a general purpose function that can be used outside 
  2334.           of the window environment.
  2335.  
  2336.         RETURNS
  2337.  
  2338.           Nothing
  2339.  
  2340.         CAUTIONS
  2341.  
  2342.           For use in color systems only.
  2343.  
  2344.           _vidblt references wn_sbit.
  2345.  
  2346.  
  2347.  
  2348.         9.29. v_spage -- set active display page
  2349.  
  2350.         USAGE
  2351.  
  2352.           v_spage(page)
  2353.           int page;
  2354.  
  2355.                 page - video page to switch the display to
  2356.  
  2357.           v_spage is a general purpose routine that can be used outside 
  2358.           of the window environment.  
  2359.  
  2360.         RETURNS
  2361.  
  2362.           Nothing.
  2363.  
  2364.         CAUTIONS
  2365.  
  2366.           Color card only.
  2367.  
  2368.  
  2369.  
  2370.  
  2371.                                                            Page: 35
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.         The Window BOSS
  2378.  
  2379.  
  2380.  
  2381.         9.30. v_cls -- clear entire video screen 
  2382.  
  2383.         USAGE
  2384.  
  2385.           v_cls(atrib)
  2386.           int atrib;
  2387.  
  2388.                 atrib - attribute to be used 
  2389.  
  2390.           v_cls clears the entire video screen to the specified attribute 
  2391.           and places the cursor in the upper left hand corner of the 
  2392.           screen.
  2393.  
  2394.           v_cls is a general purpose routine that can be used outside of 
  2395.           the window environment. 
  2396.  
  2397.           Attributes are defined in windows.h.
  2398.  
  2399.         RETURNS
  2400.  
  2401.           Nothing.
  2402.  
  2403.         CAUTIONS
  2404.  
  2405.           None.
  2406.  
  2407.  
  2408.  
  2409.         9.31. v_smode -- set video mode
  2410.  
  2411.         USAGE
  2412.  
  2413.           v_smode(mode)
  2414.           int mode;
  2415.  
  2416.                 mode - mode to set the display to
  2417.  
  2418.           v_smode is a general purpose routine which can be used outside 
  2419.           of the window environment.
  2420.  
  2421.           Modes are defined in windows.h.
  2422.  
  2423.         RETURNS
  2424.  
  2425.           Nothing.
  2426.  
  2427.         CAUTIONS
  2428.  
  2429.           None.
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.         Page: 36
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.                                                       The Window BOSS
  2444.  
  2445.  
  2446.  
  2447.         9.32. v_wca -- write character and attribute
  2448.  
  2449.         USAGE
  2450.  
  2451.           v_wca(page, char, atrib, count);
  2452.           int page, char, atrib, count;
  2453.  
  2454.                 page -  video page #
  2455.                 char -  character to write
  2456.                 atrib - attribute to use
  2457.                 count - number of times two repeat
  2458.  
  2459.           v_wca writes the character defined by char count times starting 
  2460.           at the current cursor location.     
  2461.  
  2462.           v_wca is a general purpose routine that can be used outside of 
  2463.           the window environment. 
  2464.  
  2465.           Attributes are defined in windows.h.
  2466.  
  2467.         RETURNS
  2468.  
  2469.           Nothing.
  2470.  
  2471.         CAUTIONS
  2472.  
  2473.           None.
  2474.  
  2475.  
  2476.  
  2477.         9.33. v_wtty -- write character TTY mode
  2478.  
  2479.         USAGE
  2480.  
  2481.           v_wtty(char);
  2482.           int  char;
  2483.  
  2484.                 char -  character to write
  2485.  
  2486.         v_wtty writes the character defined by char at the current cursor 
  2487.         location.  
  2488.  
  2489.           v_wtty is a general purpose routine that can be used outside of 
  2490.           the window environment. 
  2491.  
  2492.         RETURNS
  2493.  
  2494.           Nothing.
  2495.  
  2496.         CAUTIONS
  2497.  
  2498.           None.
  2499.  
  2500.  
  2501.  
  2502.  
  2503.                                                            Page: 37
  2504.  
  2505.  
  2506.  
  2507.  
  2508.  
  2509.         The Window BOSS
  2510.  
  2511.  
  2512.  
  2513.         9.34. v_locate -- locate (position) cursor
  2514.  
  2515.         USAGE
  2516.  
  2517.           v_locate(page, row, col);
  2518.           int page, row, col;
  2519.  
  2520.                 page - video page #
  2521.                 row  - row to position to
  2522.                 col  - column to position to
  2523.           
  2524.           v_locate positions the cursor to the absolute coordinates 
  2525.           specified by row and col on the specified page.  The upper left 
  2526.           hand corner of the screen is (0,0).
  2527.  
  2528.           v_locate is a general purpose routine that can be used outside 
  2529.           of the window environment.
  2530.  
  2531.           Row and Col are range checked.  You CAN position the cursor 
  2532.           slightly (25,80) off the screen.
  2533.  
  2534.         RETURNS
  2535.  
  2536.           Nothing.
  2537.  
  2538.         CAUTIONS
  2539.  
  2540.           None.
  2541.  
  2542.  
  2543.  
  2544.         9.35. v_hidec -- hide cursor
  2545.  
  2546.         USAGE
  2547.  
  2548.           v_hidec();
  2549.  
  2550.           The physical cursor is located off the screen.
  2551.  
  2552.           This function does not affect any virtual cursor coordinates, 
  2553.           it simply hides the physical cursor from view.
  2554.  
  2555.         RETURNS
  2556.  
  2557.           Nothing.
  2558.  
  2559.         CAUTIONS
  2560.  
  2561.           None.
  2562.  
  2563.  
  2564.  
  2565.  
  2566.  
  2567.  
  2568.  
  2569.         Page: 38
  2570.  
  2571.  
  2572.  
  2573.  
  2574.  
  2575.                                                       The Window BOSS
  2576.  
  2577.  
  2578.  
  2579.         9.36. v_sctype -- set cursor type (style)
  2580.  
  2581.         USAGE
  2582.  
  2583.           v_sctype(type, start, end);
  2584.           int type, start, end;
  2585.  
  2586.                 type -  cursor style code (0=hidden, 1=normal, 2=slow, 3=fast)
  2587.                 start - start scan line
  2588.                 end -   end scan line
  2589.  
  2590.           As an example, to set a slow flashing block style cursor invoke 
  2591.           this function with type=1, start=6, and end=12 (color card).
  2592.  
  2593.         RETURNS
  2594.  
  2595.           Nothing.
  2596.  
  2597.         CAUTIONS
  2598.  
  2599.           Color and Monochrome adapters only. 
  2600.           Not for use on the 3270 PC or Enhanced Graphics Adapters.
  2601.  
  2602.  
  2603.         9.37. v_sapu -- scroll active display page up
  2604.  
  2605.         USAGE
  2606.  
  2607.           v_sapu(nl, rul, cul, rlr, clr, atrib);
  2608.           int nl, rul, cul, rlr, clr, atrib;
  2609.  
  2610.                 nl  - number of lines to scroll
  2611.                 rul - row of upper left hand corner of scroll area
  2612.                 cul - column of upper left hand corner of scroll area
  2613.                 rlr - row of lower right corner of scroll area
  2614.                 clr - column of lower right corner of scroll area
  2615.                 atrib - attribute to be used for blanking
  2616.  
  2617.           A value of 0 for nl scrolls (blanks) the entire area.  To clear 
  2618.           the entire video screen use v_sapu(0, 0, 0, 24, 79, NORMAL).
  2619.  
  2620.           v_sapu is a general purpose routine that can be used outside of 
  2621.           the window environment.  
  2622.  
  2623.           Attributes are defined in windows.h.
  2624.  
  2625.         RETURNS
  2626.  
  2627.           Nothing.
  2628.  
  2629.         CAUTIONS
  2630.  
  2631.           None.
  2632.  
  2633.  
  2634.  
  2635.                                                            Page: 39
  2636.  
  2637.  
  2638.  
  2639.  
  2640.  
  2641.         The Window BOSS
  2642.  
  2643.  
  2644.  
  2645.         9.38. v_sapd -- scroll active display page down
  2646.  
  2647.         USAGE
  2648.  
  2649.           v_sapd(nl, rul, cul, rlr, clr, atrib);
  2650.           int nl, rul, cul, rlr, clr, atrib;
  2651.  
  2652.                 nl  - number of lines to scroll
  2653.                 rul - row of upper left hand corner of scroll area
  2654.                 cul - column of upper left hand corner of scroll area
  2655.                 rlr - row of lower right corner of scroll area
  2656.                 clr - column of lower right corner of scroll area
  2657.                 atrib - attribute to be used for blanking
  2658.  
  2659.           v_sapd is a general purpose routine that can be used outside of 
  2660.           the window environment.  
  2661.  
  2662.           A value of 0 for nl scrolls (blanks) the entire area.  To clear 
  2663.           the entire video screen use v_sapd(0, 0, 0, 24, 79, NORMAL).
  2664.  
  2665.           Attributes are defined in windows.h.
  2666.  
  2667.         RETURNS
  2668.  
  2669.           Nothing.
  2670.  
  2671.         CAUTIONS
  2672.  
  2673.           None.
  2674.  
  2675.  
  2676.         9.39. v_rcpos -- return current cursor position
  2677.  
  2678.         USAGE
  2679.  
  2680.           v_rcpos(page, row, col);
  2681.           int page;
  2682.           int *row, *col;       /* POINTERS */
  2683.  
  2684.                 int page - video page #     
  2685.                 int *row - pointer to int to receive row value
  2686.                 int *col - pointer to int to receive column value
  2687.  
  2688.           v_rcpos is a general purpose routine that can be used outside 
  2689.           of the window environment.  
  2690.  
  2691.         RETURNS
  2692.  
  2693.           Nothing.
  2694.  
  2695.         CAUTIONS
  2696.  
  2697.           None.
  2698.  
  2699.  
  2700.  
  2701.         Page: 40
  2702.  
  2703.  
  2704.  
  2705.  
  2706.  
  2707.                                                       The Window BOSS
  2708.  
  2709.  
  2710.  
  2711.         9.40. v_rcvs -- return current video state
  2712.  
  2713.         USAGE
  2714.  
  2715.           v_rcvs(page, vm, cols);
  2716.           int *page, *vm, *cols;        /* POINTERS */
  2717.  
  2718.                 int *page - pointer to int to receive current video page #
  2719.                 int *vm   - pointer to int to receive current video mode
  2720.                 int *cols - pointer to int to receive current screen width
  2721.           
  2722.           v_rcvs is a general purpose routine that can be used outside of 
  2723.           the window environment.
  2724.  
  2725.           Modes are defined in windows.h.
  2726.  
  2727.         RETURNS
  2728.  
  2729.           Nothing.
  2730.  
  2731.         CAUTIONS
  2732.  
  2733.           None.
  2734.  
  2735.  
  2736.  
  2737.         9.41. v_getch -- get keyboard character and scan code
  2738.  
  2739.         USAGE
  2740.  
  2741.           v_getch();
  2742.  
  2743.           v_getch is a general purpose routine that can be used outside 
  2744.           of the window environment.
  2745.  
  2746.         RETURNS
  2747.  
  2748.           The character and scan code.  The character is in the low order 
  2749.           byte, the scan code in the high order byte.
  2750.  
  2751.         CAUTIONS
  2752.  
  2753.           v_getch waits for a key to be struck.
  2754.  
  2755.  
  2756.  
  2757.  
  2758.  
  2759.  
  2760.  
  2761.  
  2762.  
  2763.  
  2764.  
  2765.  
  2766.  
  2767.                                                            Page: 41
  2768.  
  2769.  
  2770.  
  2771.  
  2772.  
  2773.         The Window BOSS
  2774.  
  2775.  
  2776.  
  2777.         9.42. v_kstat -- get keyboard status
  2778.  
  2779.         USAGE
  2780.  
  2781.           v_kstat();
  2782.  
  2783.           v_kstat is a general purpose routine that can be used outside 
  2784.           of the window environment.
  2785.  
  2786.         RETURNS
  2787.  
  2788.           TRUE if a character is available, FALSE if not.
  2789.  
  2790.         CAUTIONS
  2791.  
  2792.           None.
  2793.  
  2794.  
  2795.  
  2796.         9.43. v_kflush -- flush keyboard buffer
  2797.  
  2798.         USAGE
  2799.  
  2800.           v_kflush();
  2801.  
  2802.           v_kflush clears the keyboard buffer of any pending input.
  2803.  
  2804.         RETURNS
  2805.  
  2806.           Nothing.
  2807.  
  2808.         CAUTIONS
  2809.  
  2810.           None.
  2811.  
  2812.  
  2813.  
  2814.         9.44. v_border -- set border color
  2815.  
  2816.         USAGE
  2817.  
  2818.           v_border(color)
  2819.           int color;
  2820.  
  2821.              Set overscan border to specified color. 
  2822.  
  2823.         RETURNS
  2824.  
  2825.           Nothing.
  2826.  
  2827.         CAUTIONS
  2828.  
  2829.           None.
  2830.  
  2831.  
  2832.  
  2833.         Page: 42
  2834.  
  2835.  
  2836.  
  2837.  
  2838.  
  2839.                                                       The Window BOSS
  2840.  
  2841.  
  2842.  
  2843.         10. Registration Form
  2844.  
  2845.  
  2846.                  The Window BOSS Registration and Feedback Form
  2847.  
  2848.  
  2849.  
  2850.                Name________________________________________________
  2851.  
  2852.                Company_____________________________________________
  2853.  
  2854.                Address_____________________________________________
  2855.                    
  2856.                City, State, Zip____________________________________
  2857.  
  2858.                Daytime telephone___________________________________
  2859.  
  2860.                Compiler & Version__________________________________
  2861.  
  2862.         To register, send $50.00 (money order, personal check, call for 
  2863.         COD - Connecticut State residents add 7.5% sales tax) to:  
  2864.  
  2865.                              Star Guidance Consulting
  2866.                                  273 Windy Drive
  2867.                            Waterbury, Connecticut 06705
  2868.                                  (203) 574-2449
  2869.  
  2870.  
  2871.              Likes, dislikes, features wanted, problems?  List below:
  2872.  
  2873.           ___________________________________________________________________
  2874.  
  2875.           ___________________________________________________________________
  2876.  
  2877.           ___________________________________________________________________
  2878.  
  2879.           ___________________________________________________________________
  2880.  
  2881.           ___________________________________________________________________
  2882.  
  2883.           ___________________________________________________________________
  2884.  
  2885.           ___________________________________________________________________
  2886.  
  2887.           ___________________________________________________________________
  2888.  
  2889.           ___________________________________________________________________
  2890.  
  2891.           ___________________________________________________________________
  2892.  
  2893.           ___________________________________________________________________
  2894.  
  2895.  
  2896.  
  2897.  
  2898.  
  2899.                                                            Page: 43
  2900.  
  2901.  
  2902.  
  2903.  
  2904.  
  2905.         The Window BOSS
  2906.  
  2907.  
  2908.  
  2909.         V
  2910.         v_border, 42
  2911.         v_cls, 36
  2912.         v_getch, 41
  2913.         v_hidec, 38
  2914.         v_kflush, 42
  2915.         v_kstat, 42
  2916.         v_locate, 38
  2917.         v_rcpos, 40
  2918.         v_rcvs, 41
  2919.         v_sapd, 40
  2920.         v_sapu, 39
  2921.         v_sctype, 39
  2922.         v_smode, 36
  2923.         v_spage, 35
  2924.         v_wca, 37
  2925.         v_wtty, 37
  2926.  
  2927.         W
  2928.         wn_activate, 27
  2929.         wn_boxset, 32
  2930.         wn_close, 19
  2931.         wn_clr, 27
  2932.         wn_color, 28
  2933.         wn_dborder, 33
  2934.         wn_delrow, 26
  2935.         wn_dma, 31
  2936.         wn_fixcsr, 31
  2937.         wn_gets, 24
  2938.         wn_insrow, 26
  2939.         wn_locate, 21
  2940.         wn_move, 20
  2941.         wn_natrib, 32
  2942.         wn_open, 17
  2943.         wn_printf, 22
  2944.         wn_puts, 23
  2945.         wn_putsa, 25
  2946.         wn_restore, 20
  2947.         wn_save, 19
  2948.         wn_scroll, 30
  2949.         wn_sync, 29
  2950.         wn_titla, 18
  2951.         wn_title, 18
  2952.         wn_wrap, 29
  2953.  
  2954.         _
  2955.         _getca, 34
  2956.         _putca, 34
  2957.         _vidblt, 35
  2958.  
  2959.  
  2960.  
  2961.  
  2962.  
  2963.  
  2964.  
  2965.         Page: 44
  2966.  
  2967.  
  2968.  
  2969.  
  2970.  
  2971.